package com.ztr.zdypost.config;

import java.util.Map;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import com.google.common.collect.Maps;

import lombok.extern.slf4j.Slf4j;

/**
 * <p>
 * 全局异常处理器
 * </p>
 *
 * @description: 在spring 3.2中，新增了@ControllerAdvice
 * 注解，可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute，并应用到所有@RequestMapping中
 */
@Slf4j
@RestControllerAdvice
public class MyGlobalExceptionHandler {

    /**
     * 全局异常处理器
     * 该方法旨在捕获应用程序抛出的任何异常，并将它们封装在一个Map中，以便前端可以以统一的格式接收错误信息。
     *
     * @param e 抛出的异常对象，包含错误的详细信息
     * @return 包含错误代码和消息的Map对象
     */
    @ExceptionHandler({Exception.class})
    public Map<String, Object> exception(Exception e) {
        Map<String, Object> map = Maps.newHashMap();
        map.put("code", 500);
        map.put("msg", e.getMessage());
        return map;
    }

}
